package libreria;


public class historico {

	public ItemHistorico[] buffer;
 
	private boolean lleno = false;
	public int marca;

	public historico(int n) {
		buffer = new ItemHistorico[n];
		marca = -1;
	}

/*	public ArrayList<Double> dame() {
		ArrayList<Double> milist = new ArrayList<Double>(2 * buffer.length);
		int cont = marca;
		for (int i = 0; i < buffer.length; i++) {
			if (cont < 0) {
				if (lleno)
					cont = buffer.length - 1;
				else
					break;
			}
			if (buffer[cont] != null) {
				double DiferenciaTiempo = (buffer[marca].tiempo.getTime() - buffer[cont].tiempo
						.getTime()) / 1000;
				milist.add(DiferenciaTiempo);
				double d =buffer[cont].valor.doubleValue();
				int s=milist.size();
				milist.add(d);

			}
			cont = cont - 1;
		}
		return milist;
	}
*/
/*	public double TiempoTotal() {

		Date primero = new Date();
		Date ultimo = new Date();
		if (buffer[marca] == null) { 			
			return  -1 ;}
		else{
		primero = buffer[marca].tiempo;
		if (lleno)
			ultimo = buffer[marca + 1].tiempo;
		else			
			if (buffer[0] == null)  			
				return  0 ;
			else ultimo = buffer[0].tiempo;
		// date es tipo long pero entiendo que la diferencia de tiempo es corta
		// y entra en un double
		// esto es necesario para poder dibujar el plot que solo admite double
		double diferencia = primero.getTime() - ultimo.getTime();
		return diferencia;
		}
	}
*/
	public void meter(ItemHistorico mitem) {
		
		marca = marca + 1;
		if (marca == buffer.length) {
			marca = 0;
			lleno = true;
		}
		buffer[marca] = mitem;

	}
	
	public double Getx (int index ){
		int cont =marca-index;
		if (cont < 0) {
			if (lleno)
				cont = buffer.length+marca-index;
			else cont=0;
		}
		double DiferenciaTiempo = (buffer[marca].tiempo.getTime() - buffer[cont].tiempo.getTime()) / 1000;
		return DiferenciaTiempo;
	}
	
	public double Gety (int index ){
		int cont =marca-index;
		if (cont < 0) {
			if (lleno)
				cont = buffer.length+marca-index;
			else cont=0;
		}
		return  buffer[cont].valor;
	}
	
	public int size (){
		return buffer.length;
	}

}
